package com.jlf.core.server;

import com.jlf.core.annotation.Domain;
import com.jlf.core.domain._SimpleDO;

/**
 * 简单服务的封装
 *
 * @author wujr
 * 2023/7/5
 * @version 1.0
 * 【变更历史】
 * [wujr 2023/7/5 1.0 新增]
 */
public interface SimpleServer<T extends _SimpleDO<T>> {
    /**
     * 该简单服务处理的领域类
     * @return 领域类
     */
    Class<T> domainClass();

    /**
     * 领域的名称 {@link Domain#name()}
     * @return 领域的显示名称
     */
    String name();

    /**
     * 生成新的领域对象
     * @return 对象
     * @throws Exception 生成失败，抛出异常
     */
    default T newDomain() throws Exception{
        return domainClass().newInstance();
    }
}
